#ifndef __IRSE_H__
#define __IRSE_H__

#include <iostream>
#include "Forest.h"
#include "Distance.h"

//intermediate right subforest enumeration
// F0,F1,....Fk
// ILse gets two trees, returns a Forset - array of pointers to trees (deleted vertex);

class  Irse
{
	Forest* Frst; //array of pointers to trees (deleted vertex in reversed order);
	Tree* HeavyChild;
	Distance* distance;

public:
	Irse(Tree* Fvp, Distance* distance1);
	~Irse() {Frst->~Forest();};
	void find_Irse(Tree* Fvp, bool flag=true);
	Forest* get_Irse() {return Frst;};
	Tree* get_Fk(int k);
};

#endif //__ILSE_H__